package co.inventario.presentacion;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import co.inventario.entidad.ClienteDTO;
import co.inventario.entidad.EmpleadoDTO;
import co.inventario.entidad.PedidoVentaDTO;
import co.inventario.modelo.fachada.PedidoVentaFachada;

@ManagedBean
public class PedidoVentaBean {

	private PedidoVentaDTO pedidoventaDTO;
	private ArrayList<PedidoVentaDTO> pedidoVentaLista;
	private List<PedidoVentaDTO> pedidoVentaFilter;
	private Date date;

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	public PedidoVentaDTO getPedidoventaDTO() {
		return pedidoventaDTO;
	}

	public void setPedidoventaDTO(PedidoVentaDTO pedidoventaDTO) {
		this.pedidoventaDTO = pedidoventaDTO;
	}

	public ArrayList<PedidoVentaDTO> getPedidoVentaLista() {
		return pedidoVentaLista;
	}

	public void setPedidoVentaLista(ArrayList<PedidoVentaDTO> pedidoVentaLista) {
		this.pedidoVentaLista = pedidoVentaLista;
	}

	public List<PedidoVentaDTO> getPedidoVentaFilter() {
		return pedidoVentaFilter;
	}

	public void setPedidoVentaFilter(List<PedidoVentaDTO> pedidoVentaFilter) {
		this.pedidoVentaFilter = pedidoVentaFilter;
	}

	public void refrescarTablaPedidoVenta() {
		try {
			PedidoVentaFachada pedidoVentaFachada = new PedidoVentaFachada();
			pedidoVentaLista = pedidoVentaFachada.consultarTodo();
		} catch (Exception exception) {
			System.out.println("Error producido un error refrescando la tabla Pedido en el Bean: " + exception.getMessage());
		}
	}

	public PedidoVentaBean() {
		
		pedidoventaDTO = new PedidoVentaDTO();
		ClienteDTO clienteDTO = new ClienteDTO();
		pedidoventaDTO.setClienteDTO(clienteDTO);
		EmpleadoDTO empleadoDTO = new EmpleadoDTO();
		pedidoventaDTO.setEmpleadoDTO(empleadoDTO);
		refrescarTablaPedidoVenta();
	}

	public void crear() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			PedidoVentaFachada pedidoVentaFachada = new PedidoVentaFachada();
			pedidoVentaFachada.crear(pedidoventaDTO);
			refrescarTablaPedidoVenta();
			context.addMessage(null, new FacesMessage("Correcto", "El registro se ha creado con exito."));
		} catch (Exception exception) {
			context.addMessage(null, new FacesMessage("Error", "Se ha producido un error al crear el registro: " + exception.getMessage()));
		}
	}

	public void actualizar() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			PedidoVentaFachada pedidoVentaFachada = new PedidoVentaFachada();
			pedidoVentaFachada.actualizar(pedidoventaDTO);
			refrescarTablaPedidoVenta();
			context.addMessage(null, new FacesMessage("Correcto", "El registro se ha creado con exito."));
		} catch (Exception exception) {
			context.addMessage(null, new FacesMessage("Error", "Se ha producido un error al crear el registro: " + exception.getMessage()));
		}
	}

	public void consultarTodo() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			refrescarTablaPedidoVenta();
		} catch (Exception excepcion) {
			context.addMessage(null, new FacesMessage("Error", "Se ha producido un error al consultar el registro: " + excepcion.getMessage()));
		}
	}
}
